const BasicModel = require('./BasicModel');

module.exports = class extends BasicModel {
  async addAction(params) {
    const data = this.model(params.model).add(params.data);
    return data;
  }
  async editAction(params) {
    const data = this.model(params.model).where(params.data).update(params.data);
    return data;
  }
  async listAction(params) {
    const listall = this.model(params.model).select();
    return listall;
  }
  async delAction(params) {
    const listall = this.model(params.model).where({...params.data}).delete();
    return listall;
  }

  async listallInfoAction(params) {
    const data = await this.join({
      table: 'richtext',
      join: 'inner', // join 方式，有 left, right, inner 3 种方式
      as: 'c', // 表别名
      on: ['id', 'relation_id'] // ON 条件
    }).join({
      table: 'introduction_files',
      join: 'inner', // join 方式，有 left, right, inner 3 种方式
      as: 'd', // 表别名
      on: ['id', 'relation_id'] // ON 条件
    }).select();

    // const data = await this.alias('a').join({
    //   richtext: {
    //     join: 'inner',
    //     as: 'c',
    //     on: ['id', 'relation_id']
    //   },
    //   introduction_files: {
    //     join: 'inner',
    //     as: 'd',
    //     on: ['id', 'relation_id']
    //   }
    // });
    data.forEach(element => {
      if (element.richtext) {
        element.richtext = element.richtext.toString('utf8');
      } else {
        element.richtext = '';
      }
    });
    return data;
  }
};
